$(function () {
  function initEmoji () {
    $(".emoji-cont").html("");
    renderEmoji();
    // 点击表情
    $(".emoji-icon").each(function (k, v) {
      $(v).click(function () {
        var textarea_cursorPosition = $(".textarea").getCursorPosition()
        var textarea_innerhtmlLength = $(".textarea").html().length
        var code = $(this).attr("unicode16");
        // 光标在最后的情况
        if (textarea_innerhtmlLength === textarea_cursorPosition) {
          // emoji表情的字符串放进innerHtml才展示的了，直接放在value是字符形式
          $(".textarea").html($(".textarea").html() + (parse("&#" + parseInt(code, 16) + ";")))
          // 把innerHtml的内容放进textarea的value
          $(".textarea").val($(".textarea").html())
        } else { // 光标在中间
          var originHtml = $(".textarea").html()
          var newHtml = originHtml.slice(0, textarea_cursorPosition) + parse("&#" + parseInt(code, 16) + ";") + originHtml.slice(textarea_cursorPosition)
          $(".textarea").html(newHtml)
          $(".textarea").val($(".textarea").html())
        }
        $(".textarea").focus()
        // 一个emoji占2个字符所以+2
        $(".textarea")[0].setSelectionRange(textarea_cursorPosition + 2, textarea_cursorPosition + 2)
      });
    });
    $(".emoji-cont").hide();
  }

  initEmoji();

  // 点击展示表情
  function showEmoji () {
    $(".emoji-cont").toggle();
  }

  // 表情列表
  function renderEmoji () {
    var emos = getEmojiList()[0];
    var html = '<ul class="clearfix">';
    for (var j = 0; j < emos.length; j++) {
      var emo = emos[j];
      var data = "data:image/png;base64," + emo[2];
      if (j % 20 == 0) {
        html += '<li class="">';
      } else {
        html += "<li>";
      }
      html +=
        '<img style="display: inline;vertical-align: middle;" src="' +
        data +
        '"  unicode16="' +
        emo[1] +
        '"  class="emoji-icon"  /></li>';
    }
    $(".emoji-cont").append(html);
  }

  // 表情 通过该方法 可以直接把表情在输入框中显示出来。
  function parse (arg) {
    if (typeof ioNull != "undefined") {
      return ioNull.emoji.parse(arg);
    }
    return "";
  }

  // 点击展示表情列表
  $(".emoji-btn").click(() => {
    showEmoji();
  });

  // 获取光标位置方法
  (function ($, undefined) {
    $.fn.getCursorPosition = function () {
      var el = $(this).get(0);
      var pos = 0;
      if ('selectionStart' in el) {
        pos = el.selectionStart;
      } else if ('selection' in document) {
        el.focus();
        var Sel = document.selection.createRange();
        var SelLength = document.selection.createRange().text.length;
        Sel.moveStart('character', -el.value.length);
        pos = Sel.text.length - SelLength;
      }
      return pos;
    }
  })(jQuery);

  // 发布动态
  $(".primary-btn").click(() => {
    $(".emoji-cont").hide();
    $(".content").html($(".textarea").val())
  })
});

// 处理输入框输入
function handleInput (e) {
  $(".textarea").val(e.value)
  $(".textarea").html(e.value)
}
